home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fatted Calf
/
The Fatted Calf.iso
/
Applications
/
Games
/
Quinto
/
Source
/
Quinto.m
< prev
Wrap
Text File
|
1992-09-27
|
3KB
|
130 lines
/* Quinto.m
* Copyright Edmund Ronald 1991.
* This source code, may be duplicated and distributed
* by anyone, provided that the icon er.tiff and makefile are distributed together with any copy .
*/
#import <appkit/appkit.h> // the kitchen sink?
id theArray[5][5];
@interface MyView:View
- ButtonClicked:sender;
- newGame;
@end
@implementation MyView
- newGame
{ int i, j;
for(i=0; i<5; i++) for(j=0; j<5; j++) [theArray[i][j] setState:0];
return self;
}
- ButtonClicked:sender
{ int i,j,t;
t= [sender tag];
j = t/5;
i = t % 5;
if(i>0) [(theArray[i-1][j]) setState:![(theArray[i-1][j])state]];
if(i<4) [(theArray[i+1][j]) setState:![(theArray[i+1][j])state]];
if(j>0) [(theArray[i][j-1]) setState:![(theArray[i][j-1])state]];
if(j<4) [(theArray[i][j+1]) setState:![(theArray[i][j+1])state]];
return self;
}
@end
void setUp(void)
{
id myWindow, myPanel, myMenu, windowText, myButton, theView;
NXRect aRect;
int i,j,t;
// set up main window
NXSetRect(&aRect, 100.0, 100.0, 210.0, 210.0); // location, extent
myWindow = [[Window alloc] initContent:&aRect
style:NX_TITLEDSTYLE
backing:NX_BUFFERED
buttonMask:NX_MINIATURIZEBUTTONMASK
defer:NO];
[myWindow setTitle:"QUINTO 1.0"];
// set up a subview
NXSetRect(&aRect, 0.0, 0.0, 210.0, 210.0);
theView = [[MyView alloc] initFrame:&aRect];
[[myWindow contentView] addSubview:theView];
//set up the buttons in the subview
j=0;
while(j<5) { i=0; while(i<5){
NXSetRect(&aRect,i*30.0+30.0, j*30.0+30.0, 30.0, 30.0);
myButton = [[Button alloc] initFrame:&aRect] ;
t=(5*j +i);
[myButton setTag:t ];
[myButton setTarget:theView];
[myButton setAction:@selector(ButtonClicked:)];
[myButton setType:NX_PUSHONPUSHOFF ];
[theView addSubview:myButton];
theArray[i][j] = myButton;
i++;} j++;}
//set up info text
NXSetRect(&aRect, 0.0, 0.0, 400.0, 200.0);
windowText = [[Text alloc] initFrame:&aRect
text:"\nCopyright Edmund Ronald 1991\n"
"Use and distribute freely for non-commercial purposes\n"
"but do not change copyright or program name\n"
"NO WARRANTY WHATSOEVER\n\n"
"eronald@cnam.cnam.fr\n"
"\n"
"AIM OF GAME: HILITE ALL BUTTONS\n *IT’S POSSIBLE*"
alignment:NX_CENTERED];
[windowText setOpaque:YES];
//set up info panel
NXSetRect(&aRect, 200.0, 500.0, 400.0, 200.0);
myPanel = [[Panel alloc] initContent:&aRect
style:NX_TITLEDSTYLE
backing:NX_BUFFERED
buttonMask:NX_CLOSEBUTTONMASK
defer:YES];
[myPanel setTitle:"About Quinto"];
[[myPanel contentView] addSubview:windowText];
[myPanel removeFromEventMask:(NX_KEYDOWNMASK | NX_KEYUPMASK)];
myMenu = [[Menu alloc] initTitle:"Quinto"];
[[myMenu addItem:"Info..."
action:@selector(orderFront:)
keyEquivalent:'\0']
setTarget:myPanel];
[[myMenu addItem:"New Game"
action:@selector(newGame)
keyEquivalent:'n']
setTarget:theView];
[myMenu addItem:"Hide"
action:@selector(hide:)
keyEquivalent:'h'];
[myMenu addItem:"Quit"
action:@selector(terminate:)
keyEquivalent:'q'];
[myMenu sizeToFit];
[NXApp setMainMenu:myMenu];
[myWindow display];
[myWindow orderFront:nil];
[myWindow makeKeyWindow];
}
int main()
{
[Application new];
setUp();
[NXApp run];
[NXApp free];
return 0;
}